package com.kuaidi100.sdk.response.labelV2;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;
import java.util.Map;

/**
 * @Author: ligl
 * @Date: 2022-05-05 15:46
 */
public class OrderResult {
    /**
     * 快递单号
     */
    private String kuaidinum;
    /**
     * 回单号
     */
    private String returnNum;
    /**
     * 子单号，多个使用,隔开
     */
    private String childNum;
    /**
     * 面单短链，printType为IMAGE或者HTML时的面单短链
     */
    private String label;
    /**
     * 任务ID
     */
    private String taskId;

    //以下为快递公司面单所需的面单参数，非标准参数，不是每个快递公司都返回，也不是每个快递公司都叫这个名词，仅供参考
    /**
     * 大头笔
     */
    private String bulkpen;
    /**
     * 始发地区域编码
     */
    private String orgCode;
    /**
     * 始发地/始发网点名称
     */
    private String orgName;
    /**
     * 目的地区域编码
     */
    private String destCode;
    /**
     * 目的地/到达网点
     */
    private String destName;
    /**
     * 始发分拣编码
     */
    private String orgSortingCode;
    /**
     * 始发分拣名称
     */
    private String orgSortingName;
    /**
     * 目的分栋编码
     */
    private String destSortingCode;
    /**
     * 目的分栋中心名称
     */
    private String destSortingName;
    /**
     * 始发其他信息
     */
    private String orgExtra;
    /**
     * 目的其他信息
     */
    private String destExtra;
    /**
     * 集包编码
     */
    private String pkgCode;
    /**
     * 集包地名称
     */
    private String pkgName;
    /**
     * 二维码
     */
    private String qrCode;
    /**
     * 快递公司订单号
     */
    private String kdComOrderNum;
    /**
     * 快递业务类型编码
     */
    private String expressCode;
    /**
     * 快递业务类型名称
     */
    private String expressName;
    /**
     * 路区
     */
    private String road;
    private String agingName;
    private String checkMan;
    private String collection;
    private String payaccount;
    private String waterMark;
    private String printData;
    private String printDatas;
    private String sameCity;
    private String sameProv;
    private String openid;
    private String expressType;
    private String packageNumAndCount;
    private String packageType;
    private String routeCity0;
    private String routeCity1;
    private String routeCity2;
    private String routeCity3;
    private String routeCity4;
    private String backSign;
    private String collectionSign;
    private String deliveryType;

    private String twoDimensionCode;
    private String codingMappingOut;
    private String sfSimpleCode;
    private String fwSimpleCode;
    private String fwOutbound;
    private String codingMapping;
    private String agingNameUrl;
    private String proName;
    private String abFlag;
    private String abFlagUrl;
    private String printIcon;
    private String printIconUrl;
    private String destRouteLabel;
    private String xbFlag;
    private String xbFlagUrl;
    private String collectionUrl;

    private String net;

    private String kuaishou_signature;
    private String kuaishou_key;
    private Map<String,String> backTemplate;
    private List<Map<String,String>> childInfo;

    @Override
    public String toString() {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.writeValueAsString(this);
        } catch (Exception e) {
            return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                    .append("kuaidinum", kuaidinum)
                    .append("returnNum", returnNum)
                    .append("childNum", childNum)
                    .append("label", label)
                    .append("taskId", taskId)
                    .append("bulkpen", bulkpen)
                    .append("orgCode", orgCode)
                    .append("orgName", orgName)
                    .append("destCode", destCode)
                    .append("destName", destName)
                    .append("orgSortingCode", orgSortingCode)
                    .append("orgSortingName", orgSortingName)
                    .append("destSortingCode", destSortingCode)
                    .append("destSortingName", destSortingName)
                    .append("orgExtra", orgExtra)
                    .append("destExtra", destExtra)
                    .append("pkgCode", pkgCode)
                    .append("pkgName", pkgName)
                    .append("qrCode", qrCode)
                    .append("kdComOrderNum", kdComOrderNum)
                    .append("expressCode", expressCode)
                    .append("expressName", expressName)
                    .append("road", road)
                    .append("agingName", agingName)
                    .append("checkMan", checkMan)
                    .append("collection", collection)
                    .append("payaccount", payaccount)
                    .append("waterMark", waterMark)
                    .append("printData", printData)
                    .append("printDatas", printDatas)
                    .append("sameCity", sameCity)
                    .append("sameProv", sameProv)
                    .append("openid", openid)
                    .append("expressType", expressType)
                    .append("packageNumAndCount", packageNumAndCount)
                    .append("packageType", packageType)
                    .append("routeCity0", routeCity0)
                    .append("routeCity1", routeCity1)
                    .append("routeCity2", routeCity2)
                    .append("routeCity3", routeCity3)
                    .append("routeCity4", routeCity4)
                    .append("backSign", backSign)
                    .append("collectionSign", collectionSign)
                    .append("deliveryType", deliveryType)
                    .append("twoDimensionCode", twoDimensionCode)
                    .append("codingMappingOut", codingMappingOut)
                    .append("sfSimpleCode", sfSimpleCode)
                    .append("fwSimpleCode", fwSimpleCode)
                    .append("fwOutbound", fwOutbound)
                    .append("codingMapping", codingMapping)
                    .append("agingNameUrl", agingNameUrl)
                    .append("proName", proName)
                    .append("abFlag", abFlag)
                    .append("abFlagUrl", abFlagUrl)
                    .append("printIcon", printIcon)
                    .append("printIconUrl", printIconUrl)
                    .append("destRouteLabel", destRouteLabel)
                    .append("xbFlag", xbFlag)
                    .append("xbFlagUrl", xbFlagUrl)
                    .append("collectionUrl", collectionUrl)
                    .append("net", net)
                    .append("kuaishou_signature", kuaishou_signature)
                    .append("kuaishou_key", kuaishou_key)
                    .append("backTemplate", backTemplate)
                    .append("childInfo", childInfo)
                    .toString();
        }
    }

    public String getKuaidinum() {
        return kuaidinum;
    }

    public void setKuaidinum(String kuaidinum) {
        this.kuaidinum = kuaidinum;
    }

    public String getReturnNum() {
        return returnNum;
    }

    public void setReturnNum(String returnNum) {
        this.returnNum = returnNum;
    }

    public String getChildNum() {
        return childNum;
    }

    public void setChildNum(String childNum) {
        this.childNum = childNum;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public String getBulkpen() {
        return bulkpen;
    }

    public void setBulkpen(String bulkpen) {
        this.bulkpen = bulkpen;
    }

    public String getOrgCode() {
        return orgCode;
    }

    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public String getDestCode() {
        return destCode;
    }

    public void setDestCode(String destCode) {
        this.destCode = destCode;
    }

    public String getDestName() {
        return destName;
    }

    public void setDestName(String destName) {
        this.destName = destName;
    }

    public String getOrgSortingCode() {
        return orgSortingCode;
    }

    public void setOrgSortingCode(String orgSortingCode) {
        this.orgSortingCode = orgSortingCode;
    }

    public String getOrgSortingName() {
        return orgSortingName;
    }

    public void setOrgSortingName(String orgSortingName) {
        this.orgSortingName = orgSortingName;
    }

    public String getDestSortingCode() {
        return destSortingCode;
    }

    public void setDestSortingCode(String destSortingCode) {
        this.destSortingCode = destSortingCode;
    }

    public String getDestSortingName() {
        return destSortingName;
    }

    public void setDestSortingName(String destSortingName) {
        this.destSortingName = destSortingName;
    }

    public String getOrgExtra() {
        return orgExtra;
    }

    public void setOrgExtra(String orgExtra) {
        this.orgExtra = orgExtra;
    }

    public String getDestExtra() {
        return destExtra;
    }

    public void setDestExtra(String destExtra) {
        this.destExtra = destExtra;
    }

    public String getPkgCode() {
        return pkgCode;
    }

    public void setPkgCode(String pkgCode) {
        this.pkgCode = pkgCode;
    }

    public String getPkgName() {
        return pkgName;
    }

    public void setPkgName(String pkgName) {
        this.pkgName = pkgName;
    }

    public String getQrCode() {
        return qrCode;
    }

    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }

    public String getKdComOrderNum() {
        return kdComOrderNum;
    }

    public void setKdComOrderNum(String kdComOrderNum) {
        this.kdComOrderNum = kdComOrderNum;
    }

    public String getExpressCode() {
        return expressCode;
    }

    public void setExpressCode(String expressCode) {
        this.expressCode = expressCode;
    }

    public String getExpressName() {
        return expressName;
    }

    public void setExpressName(String expressName) {
        this.expressName = expressName;
    }

    public String getRoad() {
        return road;
    }

    public void setRoad(String road) {
        this.road = road;
    }

    public String getAgingName() {
        return agingName;
    }

    public void setAgingName(String agingName) {
        this.agingName = agingName;
    }

    public String getCheckMan() {
        return checkMan;
    }

    public void setCheckMan(String checkMan) {
        this.checkMan = checkMan;
    }

    public String getCollection() {
        return collection;
    }

    public void setCollection(String collection) {
        this.collection = collection;
    }

    public String getPayaccount() {
        return payaccount;
    }

    public void setPayaccount(String payaccount) {
        this.payaccount = payaccount;
    }

    public String getWaterMark() {
        return waterMark;
    }

    public void setWaterMark(String waterMark) {
        this.waterMark = waterMark;
    }

    public String getPrintData() {
        return printData;
    }

    public void setPrintData(String printData) {
        this.printData = printData;
    }

    public String getPrintDatas() {
        return printDatas;
    }

    public void setPrintDatas(String printDatas) {
        this.printDatas = printDatas;
    }

    public String getSameCity() {
        return sameCity;
    }

    public void setSameCity(String sameCity) {
        this.sameCity = sameCity;
    }

    public String getSameProv() {
        return sameProv;
    }

    public void setSameProv(String sameProv) {
        this.sameProv = sameProv;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getExpressType() {
        return expressType;
    }

    public void setExpressType(String expressType) {
        this.expressType = expressType;
    }

    public String getPackageNumAndCount() {
        return packageNumAndCount;
    }

    public void setPackageNumAndCount(String packageNumAndCount) {
        this.packageNumAndCount = packageNumAndCount;
    }

    public String getPackageType() {
        return packageType;
    }

    public void setPackageType(String packageType) {
        this.packageType = packageType;
    }

    public String getRouteCity0() {
        return routeCity0;
    }

    public void setRouteCity0(String routeCity0) {
        this.routeCity0 = routeCity0;
    }

    public String getRouteCity1() {
        return routeCity1;
    }

    public void setRouteCity1(String routeCity1) {
        this.routeCity1 = routeCity1;
    }

    public String getRouteCity2() {
        return routeCity2;
    }

    public void setRouteCity2(String routeCity2) {
        this.routeCity2 = routeCity2;
    }

    public String getRouteCity3() {
        return routeCity3;
    }

    public void setRouteCity3(String routeCity3) {
        this.routeCity3 = routeCity3;
    }

    public String getRouteCity4() {
        return routeCity4;
    }

    public void setRouteCity4(String routeCity4) {
        this.routeCity4 = routeCity4;
    }

    public String getBackSign() {
        return backSign;
    }

    public void setBackSign(String backSign) {
        this.backSign = backSign;
    }

    public String getCollectionSign() {
        return collectionSign;
    }

    public void setCollectionSign(String collectionSign) {
        this.collectionSign = collectionSign;
    }

    public String getDeliveryType() {
        return deliveryType;
    }

    public void setDeliveryType(String deliveryType) {
        this.deliveryType = deliveryType;
    }

    public String getTwoDimensionCode() {
        return twoDimensionCode;
    }

    public void setTwoDimensionCode(String twoDimensionCode) {
        this.twoDimensionCode = twoDimensionCode;
    }

    public String getCodingMappingOut() {
        return codingMappingOut;
    }

    public void setCodingMappingOut(String codingMappingOut) {
        this.codingMappingOut = codingMappingOut;
    }

    public String getSfSimpleCode() {
        return sfSimpleCode;
    }

    public void setSfSimpleCode(String sfSimpleCode) {
        this.sfSimpleCode = sfSimpleCode;
    }

    public String getFwSimpleCode() {
        return fwSimpleCode;
    }

    public void setFwSimpleCode(String fwSimpleCode) {
        this.fwSimpleCode = fwSimpleCode;
    }

    public String getFwOutbound() {
        return fwOutbound;
    }

    public void setFwOutbound(String fwOutbound) {
        this.fwOutbound = fwOutbound;
    }

    public String getCodingMapping() {
        return codingMapping;
    }

    public void setCodingMapping(String codingMapping) {
        this.codingMapping = codingMapping;
    }

    public String getAgingNameUrl() {
        return agingNameUrl;
    }

    public void setAgingNameUrl(String agingNameUrl) {
        this.agingNameUrl = agingNameUrl;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public String getAbFlag() {
        return abFlag;
    }

    public void setAbFlag(String abFlag) {
        this.abFlag = abFlag;
    }

    public String getAbFlagUrl() {
        return abFlagUrl;
    }

    public void setAbFlagUrl(String abFlagUrl) {
        this.abFlagUrl = abFlagUrl;
    }

    public String getPrintIcon() {
        return printIcon;
    }

    public void setPrintIcon(String printIcon) {
        this.printIcon = printIcon;
    }

    public String getPrintIconUrl() {
        return printIconUrl;
    }

    public void setPrintIconUrl(String printIconUrl) {
        this.printIconUrl = printIconUrl;
    }

    public String getDestRouteLabel() {
        return destRouteLabel;
    }

    public void setDestRouteLabel(String destRouteLabel) {
        this.destRouteLabel = destRouteLabel;
    }

    public String getXbFlag() {
        return xbFlag;
    }

    public void setXbFlag(String xbFlag) {
        this.xbFlag = xbFlag;
    }

    public String getXbFlagUrl() {
        return xbFlagUrl;
    }

    public void setXbFlagUrl(String xbFlagUrl) {
        this.xbFlagUrl = xbFlagUrl;
    }

    public String getCollectionUrl() {
        return collectionUrl;
    }

    public void setCollectionUrl(String collectionUrl) {
        this.collectionUrl = collectionUrl;
    }

    public String getNet() {
        return net;
    }

    public void setNet(String net) {
        this.net = net;
    }

    public String getKuaishou_signature() {
        return kuaishou_signature;
    }

    public void setKuaishou_signature(String kuaishou_signature) {
        this.kuaishou_signature = kuaishou_signature;
    }

    public String getKuaishou_key() {
        return kuaishou_key;
    }

    public void setKuaishou_key(String kuaishou_key) {
        this.kuaishou_key = kuaishou_key;
    }

    public Map<String, String> getBackTemplate() {
        return backTemplate;
    }

    public void setBackTemplate(Map<String, String> backTemplate) {
        this.backTemplate = backTemplate;
    }

    public List<Map<String, String>> getChildInfo() {
        return childInfo;
    }

    public void setChildInfo(List<Map<String, String>> childInfo) {
        this.childInfo = childInfo;
    }
}
